import * as XLSX from 'xlsx'

/**
 * @param {string} fileName 文件名称
 * @param {any[]} datas 数据集合 [[data1],[data2]]
 * @param {any[]} sheetNames sheet集合 [sheet1, sheet2]
 */
export function exportToExcel (fileName, datas, sheetNames) {
  // 创建工作簿
  const wb = XLSX.utils.book_new()
  for (let i = 0; i < datas.length; i++) {
       let data = datas[i];
       let sheetName = sheetNames[i];
       // 创建工作表
       let ws = XLSX.utils.json_to_sheet(data)
       // 将工作表放入工作簿中
       XLSX.utils.book_append_sheet(wb, ws, sheetName)
   }
  // 生成文件并下载
  XLSX.writeFile(wb, fileName)
}

/**
 * 将指定的表格转换为Excel文件并导出
 * @param {string} fileName - 要导出的文件名
 * @param {string} id - 表格的id
 * @param {string} sheetName - 工作表的名称
 */

function exportFn(fileName, id, sheetName) {
  const table1 = document.querySelector('#' + id)
  const ws = XLSX.utils.table_to_sheet(table1)
  const wb = XLSX.utils.book_new()
  XLSX.utils.book_append_sheet(wb, ws, 'Sheet1')
  XLSX.writeFile(wb, fileName)
}

/**
 * 转换列名
 * @param data 数据集合
 * @param fieldNameMap 列名中英文映射关系
 *  const fieldNameMap = { 
      name: '名称',
      age: "年龄",
    }
    dealColumn(data, changeFieldName);
 */
export function dealColumn (data, fieldNameMap) { // 替换写表的列名
  data.forEach((item) => {
    for (const field in fieldNameMap) {
      const value = fieldNameMap[field];
      if (item[field] != null) {
        item[value] = item[field]
        delete item[field];
      }
    }
  })
}